class Demo01HelloWorld {
  // 定义一个main方法

  /**
   * main方法是Scala程序的入口，只能定义在“类对象”中即object中，因为Scala中没有static关键字
   * 在class中定义的变量、方法都需要通过“类的对象”进行调用
   */
  //    def main(args: Array[String]): Unit = {
  //    // 打印HelloWorld
  //    System.out.println("HelloWorld! Class");
  //  }

  def printN(): Unit = {
    println("这是Scala类当中的普通的方法，需要通过“类的对象”进行调用")
  }

}

/**
 * 由object修饰的即是“类对象”
 * 并且在object中定义的变量、方法都是静态的（类似Java中由static修饰）
 */
object Demo01HelloWorld {
  // 在object中的变量是静态的，可以直接通过“类对象”调用
  val i = 10

  def printS(): Unit ={
    println("这是定义在object中的方法，可以直接通过“类对象”调用")
  }

  // 定义一个main方法

  /**
   * def 表示定义一个函数
   * main 方法名（main这个方法名比较特殊 它是程序的入口）
   * args 参数名
   * Array[String] 参数类型
   * Unit 相当于Java中的void 表示该函数没有返回值
   */
  def main(args: Array[String]): Unit = {
    // 打印HelloWorld
    System.out.println("HelloWorld! Object");
    println(Demo01HelloWorld.i)

    new Demo01HelloWorld().printN()


    Demo01HelloWorld.printS()

  }
}
